#ifndef __UM_IOM16_H__
#define __UM_IOM16_H__

#define	OUTPUT  	1
#define	INPUT  	0
//------------------------------------------
#include <avr/io.h> 

#include "UM_BIT.h"

#define PINA_0 GETBIT(PINA,0)
#define PINA_1 GETBIT(PINA,1)
#define PINA_2 GETBIT(PINA,2)
#define PINA_3 GETBIT(PINA,3)
#define PINA_4 GETBIT(PINA,4)
#define PINA_5 GETBIT(PINA,5)
#define PINA_6 GETBIT(PINA,6)
#define PINA_7 GETBIT(PINA,7)

#define DDRA_0 GETBIT(DDRA,0)
#define DDRA_1 GETBIT(DDRA,1)
#define DDRA_2 GETBIT(DDRA,2)
#define DDRA_3 GETBIT(DDRA,3)
#define DDRA_4 GETBIT(DDRA,4)
#define DDRA_5 GETBIT(DDRA,5)
#define DDRA_6 GETBIT(DDRA,6)
#define DDRA_7 GETBIT(DDRA,7)

#define PA_0   GETBIT(PORTA,0) 
#define PA_1   GETBIT(PORTA,1) 
#define PA_2   GETBIT(PORTA,2) 
#define PA_3   GETBIT(PORTA,3) 
#define PA_4   GETBIT(PORTA,4) 
#define PA_5   GETBIT(PORTA,5) 
#define PA_6   GETBIT(PORTA,6) 
#define PA_7   GETBIT(PORTA,7) 

#define PINB_0 GETBIT(PINB,0)
#define PINB_1 GETBIT(PINB,1)
#define PINB_2 GETBIT(PINB,2)
#define PINB_3 GETBIT(PINB,3)
#define PINB_4 GETBIT(PINB,4)
#define PINB_5 GETBIT(PINB,5)
#define PINB_6 GETBIT(PINB,6)
#define PINB_7 GETBIT(PINB,7)

#define DDRB_0 GETBIT(DDRB,0)
#define DDRB_1 GETBIT(DDRB,1)
#define DDRB_2 GETBIT(DDRB,2)
#define DDRB_3 GETBIT(DDRB,3)
#define DDRB_4 GETBIT(DDRB,4)
#define DDRB_5 GETBIT(DDRB,5)
#define DDRB_6 GETBIT(DDRB,6)
#define DDRB_7 GETBIT(DDRB,7)

#define PB_0   GETBIT(PORTB,0) 
#define PB_1   GETBIT(PORTB,1) 
#define PB_2   GETBIT(PORTB,2) 
#define PB_3   GETBIT(PORTB,3) 
#define PB_4   GETBIT(PORTB,4) 
#define PB_5   GETBIT(PORTB,5) 
#define PB_6   GETBIT(PORTB,6) 
#define PB_7   GETBIT(PORTB,7) 

#define PINC_0 GETBIT(PINC,0)
#define PINC_1 GETBIT(PINC,1)
#define PINC_2 GETBIT(PINC,2)
#define PINC_3 GETBIT(PINC,3)
#define PINC_4 GETBIT(PINC,4)
#define PINC_5 GETBIT(PINC,5)
#define PINC_6 GETBIT(PINC,6)
#define PINC_7 GETBIT(PINC,7)

#define DDRC_0 GETBIT(DDRC,0)
#define DDRC_1 GETBIT(DDRC,1)
#define DDRC_2 GETBIT(DDRC,2)
#define DDRC_3 GETBIT(DDRC,3)
#define DDRC_4 GETBIT(DDRC,4)
#define DDRC_5 GETBIT(DDRC,5)
#define DDRC_6 GETBIT(DDRC,6)
#define DDRC_7 GETBIT(DDRC,7)

#define PC_0   GETBIT(PORTC,0) 
#define PC_1   GETBIT(PORTC,1) 
#define PC_2   GETBIT(PORTC,2) 
#define PC_3   GETBIT(PORTC,3) 
#define PC_4   GETBIT(PORTC,4) 
#define PC_5   GETBIT(PORTC,5) 
#define PC_6   GETBIT(PORTC,6) 
#define PC_7   GETBIT(PORTC,7) 

#define PIND_0 GETBIT(PIND,0)
#define PIND_1 GETBIT(PIND,1)
#define PIND_2 GETBIT(PIND,2)
#define PIND_3 GETBIT(PIND,3)
#define PIND_4 GETBIT(PIND,4)
#define PIND_5 GETBIT(PIND,5)
#define PIND_6 GETBIT(PIND,6)
#define PIND_7 GETBIT(PIND,7)

#define DDRD_0 GETBIT(DDRD,0)
#define DDRD_1 GETBIT(DDRD,1)
#define DDRD_2 GETBIT(DDRD,2)
#define DDRD_3 GETBIT(DDRD,3)
#define DDRD_4 GETBIT(DDRD,4)
#define DDRD_5 GETBIT(DDRD,5)
#define DDRD_6 GETBIT(DDRD,6)
#define DDRD_7 GETBIT(DDRD,7)

#define PD_0   GETBIT(PORTD,0) 
#define PD_1   GETBIT(PORTD,1) 
#define PD_2   GETBIT(PORTD,2) 
#define PD_3   GETBIT(PORTD,3) 
#define PD_4   GETBIT(PORTD,4) 
#define PD_5   GETBIT(PORTD,5) 
#define PD_6   GETBIT(PORTD,6) 
#define PD_7   GETBIT(PORTD,7) 

#define UM_SS_DDR	        DDRB_4
//#define UM_MOSI		PB_5
#define UM_MOSI_DDR	DDRB_5
//#define UM_MISO		PB_6
#define UM_MISO_DDR	DDRB_6
//#define UM_SCK		PB_7
#define UM_SCK_DDR	DDRB_7

#endif
